/**
 *  AMQP.h
 *
 *  Starting point for all includes of the Copernica AMQP library
 *
 *  @documentation public
 */

#pragma once

// base C++ include files
#include <vector>
#include <string>
#include <memory>
#include <map>
#include <unordered_map>
#include <queue>
#include <limits>
#include <cstddef>
#include <cstring>
#include <stdexcept>
#include <utility>
#include <iostream>
#include <algorithm>
#include <functional>

// base C include files
#include <stdint.h>
#include <math.h>

// forward declarations
#include "classes.h"

// utility classes
#include "endian.h"
#include "buffer.h"
#include "bytebuffer.h"
#include "receivedframe.h"
#include "outbuffer.h"
#include "watchable.h"
#include "monitor.h"

// amqp types
#include "field.h"
#include "numericfield.h"
#include "decimalfield.h"
#include "stringfield.h"
#include "booleanset.h"
#include "fieldproxy.h"
#include "table.h"
#include "array.h"

// envelope for publishing and consuming
#include "metadata.h"
#include "envelope.h"
#include "message.h"

// mid level includes
#include "exchangetype.h"
#include "flags.h"
#include "callbacks.h"
#include "deferred.h"
#include "deferredmessage.h"
#include "deferredconsumer.h"
#include "deferredqueue.h"
#include "deferreddelete.h"
#include "deferredcancel.h"
#include "deferredget.h"
#include "deferredconfirm.h"
#include "deferredreturn.h"
#include "channelimpl.h"
#include "channel.h"
#include "login.h"
#include "address.h"
#include "connectionhandler.h"
#include "connectionimpl.h"
#include "connection.h"
